#include <REGX52.H>
void delay_ms(unsigned int ms)
{
    unsigned int i, j;
    for (i = 0; i < ms; i++)
    {
        for (j = 0; j < 123; j++)
            ;
    }
}
int main()
{
    while (1)
    {
        int n,m;
        // 阶段1：南北方向绿灯，东西方向红灯，持续5秒
        P0 = 0x04; 
        P1 = 0x01;
        delay_ms(5000);

        // 阶段2：南北方向其他灯灭，黄灯闪烁3次（500ms），东西方向红灯保持
        for(n = 0; n < 3; n++)
        {
            P0 = 0x02; 
            delay_ms(250);
            P0 = 0x00; 
            delay_ms(250);
        }

        // 阶段3：东西方向绿灯，南北方向红灯，持续5秒
        P1 = 0x04;
        P0 = 0x01; 
        delay_ms(5000);

        // 阶段4：东西方向其他灯灭，黄灯闪烁3次（500ms），南北方向红灯保持
        for (m = 0; m < 3; m++)
        {
            P1 = 0x02;
            delay_ms(250);
            P1 = 0x00;
            delay_ms(250);
        }
    }
}